package com.jtyoui.pdf;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;

import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfWriter;

/**
 * 将多张图片合并转为PDF；需要用到com.lowagie.text包，
 *
 * @author Jtyoui
 * @version 18.6.30
 */
public class PDF {
    /**
     * @param imageFolderPath 图片文件夹地址
     * @param pdfPath         PDF文件保存地址
     */
    public void toPdf(String imageFolderPath, String pdfPath) throws Exception {
        // 图片文件夹地址
        // String imageFolderPath = "D:/Demo/ceshi/";
        // 图片地址
        String imagePath;
        // PDF文件保存地址
        // String pdfPath = "D:/Demo/ceshi/hebing.pdf";
        // 输入流
        FileOutputStream fos = new FileOutputStream(pdfPath);
        // 创建文档
        Document doc = new Document(null, 0, 0, 0, 0);
        //doc.open();
        // 写入PDF文档
        PdfWriter.getInstance(doc, fos);
        // 读取图片流
        BufferedImage img;
        // 实例化图片
        Image image;
        // 获取图片文件夹对象
        File file = new File(imageFolderPath);
        File[] files = file.listFiles();
        // 循环获取图片文件夹内的图片
        if (files != null)
            for (File f : files) {
                if (f.getName().endsWith(".png")
                        || f.getName().endsWith(".jpg")
                        || f.getName().endsWith(".gif")
                        || f.getName().endsWith(".jpeg")
                        || f.getName().endsWith(".tif")) {
                    imagePath = imageFolderPath + f.getName();
                    // 读取图片流
                    System.out.println(imagePath);
                    img = ImageIO.read(new File(imagePath));
                    // 根据图片大小设置文档大小
                    doc.setPageSize(new Rectangle(img.getWidth(), img.getHeight()));
                    // 实例化图片
                    image = Image.getInstance(imagePath);
                    // 添加图片到文档
                    doc.open();
                    doc.add(image);
                }
            }
        // 关闭文档
        doc.close();
    }
}